﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OGS.Contracts
{
    /// <summary>
    /// Stores the CategoryInfo Data.
    /// </summary>
    public class Category
    {
        /// <summary>
        /// The ID
        /// </summary>
        public int ID
        {
            get;
            set;
        }

        /// <summary>
        /// The Code
        /// </summary>
        public string Code
        {
            get;
            set;
        }

        /// <summary>
        /// The Computed Name
        /// </summary>
        public string ComputedName { get; set; }

        /// <summary>
        /// The Category Language
        /// </summary>
        public List<CategoryLanguage> CategoryLanguages { get; set; }

        /// <summary>
        /// The Url
        /// </summary>
        public string Url
        {
            get;
            set;
        }

        /// <summary>
        /// The Image
        /// </summary>
        public string Image
        {
            get;
            set;
        }

        /// <summary>
        /// The Display Order
        /// </summary>
        public int DisplayOrder
        {
            get;
            set;
        }

        /// <summary>
        /// The Parent Category ID
        /// </summary>
        public int ParentCategoryID
        {
            get;
            set;
        }

        /// <summary>
        /// The Parent Category Name
        /// </summary>
        public string ParentCategoryName { get; set; }

        /// <summary>
        /// The Root Level
        /// </summary>
        public short RootLevel
        {
            get;
            set;
        }

        /// <summary>
        /// Checks whether the Category Is Active
        /// </summary>
        public bool IsActive
        {
            get;
            set;
        }

        /// <summary>
        /// The Last Modified By
        /// </summary>
        public int LastModifiedBy
        {
            get;
            set;
        }

        /// <summary>
        /// The Last Modified Date
        /// </summary>
        public DateTime LastModifiedDate
        {
            get;
            set;
        }

        /// <summary>
        /// Initializes a new instance of the Category class with no arguments.
        /// </summary>
        public Category()
        {
            this.CategoryLanguages = new List<CategoryLanguage>();
        }


    }
}

